A Run-Time Type-Checking Debugger for C

نویسندگان

  • Alexey Loginov
  • Suan Yong
  • Susan Horwitz
  • Thomas Reps
چکیده

This document outlines progress to date on the run-time type-checking project funded in part by IBM. The project has been carried out during the last year by Alexey Loginov and Suan Yong, under the supervision of Professors Susan Horwitz and Thomas Reps. The goal of the project is the design and implementation of a debugging tool based on dynamic type checking. The major accomplishment during the last year has been an implementation of the tool for the (complete) ANSI C language. The tool instruments a program to monitor the type stored in each memory location (which may differ from the static type of that location due to the use of unions, pointers, and casting). Whenever a value is written into a location, the location’s run-time type tag is updated to match the type of the value. Also, the location’s static type is compared with the value’s type; if there is a mismatch, a warning message is issued. Whenever the value in a location is used, its run-time type tag is checked, and if the type is inappropriate in the context in which the value is being used, an error message is issued. In preliminary tests, the tool has been used to find bugs in several Solaris utilities. The information provided by the tool is usually succinct and precise in showing the error location. The following activities (discussed in more detail below) are planned for the coming year:

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Executable Formal Semantics of C with Applications: Technical Report

This paper describes an executable formal semantics of C. Being executable, the semantics has been thoroughly tested against the GCC torture test suite and successfully passes 770 of 776 test programs. It is the most complete and thoroughly tested formal definition of C to date. The semantics yields an interpreter, debugger, state space search tool, and model checker “for free”. The semantics i...

متن کامل

Compiler-directed Type Reconstruction for Polymorphic Languages Compiler-directed Type Reconstruction for Polymorphic Languages

In tagless implementations of polymorphic languages, the run-time types of data objects may not be completely determined at compile-time. With ML-like static type-checking, a static type template can be produced for each polymorphic function that may be instantiated at run-time according to the types of its actual arguments. Still, as noted in 5], it may not be possible to reconstruct the types...

متن کامل

Towards a Haskell Debugger

We describe a debugger for the lazy functional language Haskell Hud92]. The basic idea is to transform a Haskell program into a program that evaluates to the same result as the original program but also produces an evaluation dependence tree describing how the result was obtained. If an error is detected while running the program, the programmer can navigate through the evaluation dependence tr...

متن کامل

Model Checking Machine Code with the GNU Debugger

Embedded software verification is an important verification problem that requires the ability to reason about the timed semantics of concurrent behaviors at a low level of atomicity. The level of atomicity is the smallest execution block (such as a machine instruction or a C instruction) that cannot be split by an interrupt. Combining a cycleaccurate debugger with model checking algorithms prov...

متن کامل

Runtime Verification of Concurrent Haskell Programs

In this article we use model checking techniques to debug Concurrent Haskell programs. LTL formulas specifying assertions or other properties are verified at runtime. If a run which falsifies a formula is detected, the debugger emits a warning and records the path leading to the violation. It is possible to dynamically add formulas at runtime, giving a degree of flexibility which is not availab...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007